Unless otherwise indicated herein, approaches described in this section are not prior art to the claims listed below and are not admitted to be prior art by inclusion in this section.
Video compression is becoming important because of the increasing popularity of a wide variety of video-related applications such as streaming media, wireless display, remote gaming, cloud computing, distance learning, and so forth. Video in these applications often has a mixed content including natural video, text and still graphics in the same picture.
The High Efficiency Video Coding (HEVC) standard, a successor to the Advanced Video Coding (AVC) standard, was finalized in January of 2013. Investigations on several extensions of HEVC had started prior to the finalization of the HEVC standard. Range extension (RExt) is one of the extensions under investigation, which aims at providing solutions for efficiently compressing video contents of higher bit-depths, e.g., 10, 12, 14, 16, and color formats other than the YUV420 color format, such as YU422, YUV444 and RGB444.
During the investigation of RExt, some video coding tools have been studied, including the intra picture block copy (IntraBC) technique. IntraBC is a block matching technique in which a coding unit (CU) is predicted as a displacement from an already-reconstructed block of samples in a neighboring region of the same picture. IntraBC is effective for screen content video since it removes redundancy from repeating patterns which typically occur in regions text and/or still graphics in the picture.
Referring to FIG. 10, in a first approach, for the CUs using intra motion compensation (MC), the reference block is obtained from a reconstructed region in the same picture, and, then, motion vectors (MVs) and residual are coded. In this approach, the intra MC differs from the inter-picture case of HEVC in a number of ways. Firstly, MVs are restricted to one-dimensional (1-D), i.e., either horizontal or vertical, instead of being two-dimensional (2-D). Additionally, binarization is fixed length instead of exponential-Golomb. Moreover, a new syntax element is introduced to signal whether the MV is horizontal or vertical.
In a second approach, intra MC is extended to support 2-D MVs, so that both MV components can be non-zero at the same time (as in the inter-picture case of HEVC). This provides more flexibility to intra MC than in the first approach where the MV is restricted to be strictly horizontal or vertical. The second approach adopts 2-D intra MC and removes interpolation filters. The second approach also constrains the search area to the current coding tree unit (CTU) and the left CTU.
In the IntraBC technique in the first and second approaches, all the samples in the reference block need to be reconstructed samples. Because of this requirement, the reference block cannot overlap with the current CU. A third approach extends the current Intra BC method such that the overlapping between the current and the reference blocks is allowed. Referring to FIG. 11, DVx and DVy denote the horizontal and the vertical components of a displacement vector (DV), and W and H denote the width and the height of the current CU. When the reference block is overlapped with the current CU, the left and top parts of the reference block are available, as shown in FIG. 11. The unavailable part is padded by horizontally copying the nearest available reconstructed sample in the reference block.
In a fourth approach, when the current CU to be predicted overlaps the reference CU, the prediction samples in the overlapped region are generated by copying the available samples from either the vertical or horizontal direction. Referring to FIG. 12, when |MVy|>|MVx|, the reference samples are generated by copying the reference samples of the bottommost row of the above CU. Otherwise, when |MVy|≤|MVx|, the reference samples are generated by copying the reference samples of the rightmost column of the left CU. Similar to the third approach, the padding process of the fourth approach is invoked when (−W<MVx≤0) and (−H<MVy≤0), where W and H are the width and height of the current block, and MVx and MVy are the horizontal and vertical element of the MV.